package au.com.acpfg.proteomics.mascotrdr; import javax.swing.JFileChooser; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane; import org.knime.core.node.defaultnodesettings.DialogComponentButtonGroup; import org.knime.core.node.defaultnodesettings.DialogComponentFileChooser; import org.knime.core.node.defaultnodesettings.DialogComponentNumber; import org.knime.core.node.defaultnodesettings.DialogComponentNumberEdit; import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded; import org.knime.core.node.defaultnodesettings.SettingsModelNumber; import org.knime.core.node.defaultnodesettings.SettingsModelString; /** * <code>NodeDialog</code> for the "MascotReader" Node. * Using the MascotDatFile open-source java library, this node provides an interface to that, to provide convenient access to MatrixScience Mascot datasets * * This node dialog derives from {@link DefaultNodeSettingsPane} which allows * creation of a simple dialog with standard components. If you need a more * complex dialog please derive directly from * {@link org.knime.core.node.NodeDialogPane}. * * @author Andrew Cassin */ public class MascotReaderNodeDialog extends DefaultNodeSettingsPane { private static SettingsModelString f_resulttype = MascotReaderNodeModel.make_as_string(MascotReaderNodeModel.CFGKEY_RESULTTYPE); private static SettingsModelNumber f_ci = (SettingsModelNumber)MascotReaderNodeModel.make(MascotReaderNodeModel.CFGKEY_CONFIDENCE); public static void set_controls() { f_ci.setEnabled(f_resulttype.getStringValue().trim().toLowerCase().startsWith("confident")); } /** * New pane for configuring MascotReader node dialog. * This is just a suggestion to demonstrate possible default dialog * components. */ protected MascotReaderNodeDialog() { super(); set_controls(); addDialogComponent(new DialogComponentFileChooser(MascotReaderNodeModel.make_as_string(MascotReaderNodeModel.CFGKEY_FOLDER), "folder-history", JFileChooser.OPEN_DIALOG, true, // directories only ".dat" ) ); DialogComponentButtonGroup bg = new DialogComponentButtonGroup(f_resulttype, true, "Result Selection per query", new String[] { "all hits", "best hit only", "confident hits only (identity threshold)"}); bg.setToolTipText("Which peptide identifications per spectra do you want to see?"); addDialogComponent(bg); f_resulttype.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent ce) { set_controls(); } }); addDialogComponent(new DialogComponentNumberEdit(f_ci,"Identity Threshold Confidence", 5)); } }